\section{Tâches à réaliser}

\subsection{Gestion du cas des machines multicoeur}
Parmi les tâches à réaliser, le support des machines multiprocesseur est en cours d'implémentation. Afin de faire cela, nous envisageons de créer une \og{}pool\fg{} de threads noyau, à l'aide de \verb+clone()+. Nous récupérerons d'abord le nombre de processeur de la machine grâce au fichier \verb+/proc/cpuinfo+. Ensuite, nous générerons un thread noyau par processeur afin que ceux-ci puissent s'exécuter simultanément.

Nous allons être confronté à un problème si jamais deux ou plus de ces threads noyau finissent d'exécuter un de nos thread utilisateur en même temps. Ils risquent alors d'accéder en même temps à la liste des threads actifs, ce qui aurait pour conséquence que l'un des threads utilisateur soit exécuté sur deux threads de la \og{}pool\fg{} simultanément. 

Nous allons donc devoir mettre en place des verrous sur les ressources partagées ainsi que des fonctions de synchronisation pour les threads noyau.

\subsection{Préemption et priorité}
Quelques points restent à améliorer: le timer est remis à 0 à chaque fois qu'une fonction de gestion des threads est appelée même si cette fonction ne passe pas la main à un autre thread et retourne directement au thread appelant. Ceci pose certains problèmes car un thread peut garder la main pendant une durée largement supérieure à une \textit{time slice}. Pour la priorité des threads, on pourrait implémenter un système qui donne plus souvent la main aux processus qui font souvent des appels aux fonctions permettant de passer la main aux autres processus et moins souvent aux autres.\\
Deux autres améliorations devront être réalisées : la première est l'ajout de tests pour vérifier cette fonctionnalité. Pour l'instant seulement un test est disponible se basant sur des affichages. La deuxième concerne l'utilisation de \verb+setitimer()+ qui est une fonction obsolète. Il faudra donc utiliser \verb+timer_settime()+.

\subsection{Tâches non commencées}
Restent à réaliser la détection du débordement de pile, l'annulation d'un autre thread, l'amélioration de l'ordonnancement des threads ainsi que la mise en place de la création de la bibliothèque partagée.
